Not applicable
Not applicable
Not applicable
1. Field of the Invention
The present invention pertains to the field of data communications and, more specifically, the data communications used in testing client/server architecture. Virtual users are created to test server responses under conditions that simulate an actual load under use.
2. Description of the Prior Art
Telecommunications and software companies are constantly developing new client/server system applications, e.g., those for server-based local area networks (LAN), Internet and intranet use. These new applications are often tested prior to commercial implementation because the user perception of how well the server/client interaction works is directly related to the success or failure of the system. A major factor in the design of these systems is the capability of the server to provide responses in adequate time to prevent user frustration. For example, Web browser technology for use on the Internet permits a user to click on hyperlinked text, in order to jump from one Web site to the next. Some studies show that more than one-third of these attempts to jump between sites fail because either the server is unavailable or the transfer takes too much time. The user has opportunities to go to other sites, and many will not wait much longer than thirty to sixty seconds. Thus, it is important to ascertain server response rates, as well as to test the functionality of the server application under load.
High volume servers for use in the field of electronic commerce and the like are correspondingly expensive due to the need for increased capacity. The available communications bandwidth may be shared among all clients, but there inevitably comes with success of the system a need for an upgrade to provide better telecommunications and server capacity. The server owner may wish to design for criteria that best correspond to the owner""s business needs, e.g., an average use or a peak use. While it may be possible to provide for the anticipated needs and estimate the associated costs based upon rules of thumb, no certainty exists as to the adequacy of the planned implementation until such time as the server is actually put to the test under conditions of actual or simulated load.
One way to put the server under test is to permit actual users to access the server in a laboratory that is equipped with computers and communications devices. This type of testing process is costly and only lends itself well to systems that are intended to handle small volumes of communications. A sufficient number of users must be physically present to connect to the server for test purposes. For example, in addition to the required warehouse or office space, two hundred users are provided with hardware, and the machines are all individually configured for purposes of each test. A test script or test scripts are written for each user to step through while interacting with the server. A test director or conductor is required to synchronize the testing.
Due to the limitations and difficulties of laboratory testing, conventional software and hardware tools have been developed for purposes of server stress and performance testing. These tools can provide repetitive responses in a manner that simulates a client interacting with the system, but there are tremendous problems in forcing one of these tools to behave as simultaneous multiple clients that each provide correspondingly different responses at different points of interaction with the server. A leading one of these performance testing tools is Loadrunner1, which is commercially available from Mercury Interactive located in Sunnyvale, Calif. This software has advanced features that facilitate the generation of a new virtual user through a new virtual user utility; however, manual or other intervention is required to record a new virtual user whenever adding or deleting fields from client images. This need makes it nearly impossible to perform large volume interactive server testing because the testing script falls out of synchronization with the virtual client image due to the need to record a new virtual user each time a field is added or deleted from the client image.
1 Loadrunner is a trademark of Mercury Interactive located in Sunnyvale, Calif. 
It remains a problem in the art to provide server load testing while simulating multiple applications and/or multiple clients running on one server.
The present invention overcomes the problems outlined above and advances the art by providing an enhanced virtual load testing system that facilitates server load testing while simulating multiple applications and/or multiple clients running on one server.
The virtual load testing system includes a virtual user generator that is configured to generate one or more virtual users. A message builder is operably configured to store and retrieve test data for use by the virtual users. The message builder operates in combination with the virtual user generator to populate respective virtual users that are generated by the virtual user generator with corresponding actions. Each action includes one or more sequential messages that operate in combination to provide a server transaction scenario for communications involving the virtual users. The virtual user generator is configured to access the messages in performing interactive server load testing operations where each virtual user is configured as a server client that is capable of delivering responses corresponding to at least one of the actions.
In preferred embodiments, the virtual user generator includes a program interface to a commercially available server load testing package, such as Loadrunner. Input devices are used to provide the system with test design information that is configured in correspondence with a predetermined server application. The information may be stored and recalled for later use to perform automated testing of the predetermined server application, and the testing may be performed across a variety of telecommunications protocols, such as HTTP and other Internet transfer protocols.
The stored message data is preferably accessed by a database having a data structure that includes linked action tables, message tables, record tables, and field tables that, in combination, contain rules for creating server transaction scenarios for each of the virtual users. This data structure more preferably has a hierarchical data structure including, in descending order, the action tables, the message tables, the record tables, and the field tables that provide rules for constructing messages. A second group of data is used for populating messages as directed by the rules.
The system is operated according to a method including the steps of generating one or more virtual users, retrieving stored test data for use by the virtual users, populating respective virtual users with actions derived from the stored test data, wherein each action includes one or more sequential messages operating in combination as a server transaction scenario for communications involving the virtual users, and performing interactive server load testing operations with each virtual user configured as a server client capable of delivering responses corresponding to at least one of the actions.
Software that embodies machine instructions for accomplishing the method is provided as a computer readable form. The machine instructions are operable for use in server load testing operations. Accordingly, the machine instructions include means for generating one or more virtual users, means for retrieving stored test data for use by the virtual users, means for populating respective virtual users with actions derived from the stored test data, wherein each action includes one or more sequential messages operating in combination as a server transaction scenario for communications involving the virtual users, and means for performing interactive server load testing operations with each virtual user configured as a server client capable of delivering responses corresponding to at least one of the actions. Computer readable forms include printed indicia that can be read by optical character recognition; magnetic data storage media including hard disks, floppy disks, and magnetic tape, optical storage media, RAM, ROM, and any other form of storing data for machine use.